/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package net.yienyien.process.bpel.util;

import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.xml.namespace.QName;

import net.yienyien.process.bpel.Activity;
import net.yienyien.process.bpel.ActivityContainer;
import net.yienyien.process.bpel.Assign;
import net.yienyien.process.bpel.BPELVariableNameMember1;
import net.yienyien.process.bpel.BooleanExpr;
import net.yienyien.process.bpel.BpelPackage;
import net.yienyien.process.bpel.Branches;
import net.yienyien.process.bpel.Catch;
import net.yienyien.process.bpel.Compensate;
import net.yienyien.process.bpel.CompensateScope;
import net.yienyien.process.bpel.CompletionCondition;
import net.yienyien.process.bpel.Condition;
import net.yienyien.process.bpel.Copy;
import net.yienyien.process.bpel.Correlation;
import net.yienyien.process.bpel.CorrelationSet;
import net.yienyien.process.bpel.CorrelationSets;
import net.yienyien.process.bpel.CorrelationWithPattern;
import net.yienyien.process.bpel.Correlations;
import net.yienyien.process.bpel.CorrelationsWithPattern;
import net.yienyien.process.bpel.DeadlineExpr;
import net.yienyien.process.bpel.DocumentRoot;
import net.yienyien.process.bpel.Documentation;
import net.yienyien.process.bpel.DurationExpr;
import net.yienyien.process.bpel.Elseif;
import net.yienyien.process.bpel.Empty;
import net.yienyien.process.bpel.EventHandlers;
import net.yienyien.process.bpel.Exit;
import net.yienyien.process.bpel.Expression;
import net.yienyien.process.bpel.ExtensibleElements;
import net.yienyien.process.bpel.Extension;
import net.yienyien.process.bpel.ExtensionActivity;
import net.yienyien.process.bpel.ExtensionAssignOperation;
import net.yienyien.process.bpel.Extensions;
import net.yienyien.process.bpel.FaultHandlers;
import net.yienyien.process.bpel.Flow;
import net.yienyien.process.bpel.ForEach;
import net.yienyien.process.bpel.From;
import net.yienyien.process.bpel.FromPart;
import net.yienyien.process.bpel.FromParts;
import net.yienyien.process.bpel.If;
import net.yienyien.process.bpel.Import;
import net.yienyien.process.bpel.Invoke;
import net.yienyien.process.bpel.Link;
import net.yienyien.process.bpel.Links;
import net.yienyien.process.bpel.Literal;
import net.yienyien.process.bpel.MessageExchange;
import net.yienyien.process.bpel.MessageExchanges;
import net.yienyien.process.bpel.OnAlarmEvent;
import net.yienyien.process.bpel.OnAlarmPick;
import net.yienyien.process.bpel.OnEvent;
import net.yienyien.process.bpel.OnMessage;
import net.yienyien.process.bpel.OnMsgCommon;
import net.yienyien.process.bpel.OpaqueActivity;
import net.yienyien.process.bpel.OpaqueBoolean;
import net.yienyien.process.bpel.OpaqueStr;
import net.yienyien.process.bpel.PartnerLink;
import net.yienyien.process.bpel.PartnerLinks;
import net.yienyien.process.bpel.Pick;
import net.yienyien.process.bpel.Query;
import net.yienyien.process.bpel.Receive;
import net.yienyien.process.bpel.RepeatUntil;
import net.yienyien.process.bpel.Reply;
import net.yienyien.process.bpel.Rethrow;
import net.yienyien.process.bpel.Roles;
import net.yienyien.process.bpel.Scope;
import net.yienyien.process.bpel.Sequence;
import net.yienyien.process.bpel.Source;
import net.yienyien.process.bpel.Sources;
import net.yienyien.process.bpel.TInitiate;
import net.yienyien.process.bpel.TPattern;
import net.yienyien.process.bpel.Target;
import net.yienyien.process.bpel.Targets;
import net.yienyien.process.bpel.Throw;
import net.yienyien.process.bpel.To;
import net.yienyien.process.bpel.ToPart;
import net.yienyien.process.bpel.ToParts;
import net.yienyien.process.bpel.Validate;
import net.yienyien.process.bpel.Variable;
import net.yienyien.process.bpel.Variables;
import net.yienyien.process.bpel.Wait;
import net.yienyien.process.bpel.While;

import net.yienyien.process.bpel.YesNoBoolean;
import org.eclipse.emf.common.util.BasicDiagnostic;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.DiagnosticChain;

import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.util.EObjectValidator;

import org.eclipse.emf.ecore.xml.type.XMLTypePackage;

import org.eclipse.emf.ecore.xml.type.util.XMLTypeUtil;
import org.eclipse.emf.ecore.xml.type.util.XMLTypeValidator;

/**
 * <!-- begin-user-doc -->
 * The <b>Validator</b> for the model.
 * <!-- end-user-doc -->
 * @see net.yienyien.process.bpel.BpelPackage
 * @generated
 */
public class BpelValidator extends EObjectValidator {
	/**
	 * The cached model package
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final BpelValidator INSTANCE = new BpelValidator();

	/**
	 * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.common.util.Diagnostic#getSource()
	 * @see org.eclipse.emf.common.util.Diagnostic#getCode()
	 * @generated
	 */
	public static final String DIAGNOSTIC_SOURCE = "net.yienyien.process.bpel";

	/**
	 * A constant with a fixed name that can be used as the base value for additional hand written constants.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 0;

	/**
	 * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;

	/**
	 * The cached base package validator.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected XMLTypeValidator xmlTypeValidator;

	/**
	 * Creates an instance of the switch.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public BpelValidator() {
		super();
		xmlTypeValidator = XMLTypeValidator.INSTANCE;
	}

	/**
	 * Returns the package of this validator switch.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EPackage getEPackage() {
	  return BpelPackage.eINSTANCE;
	}

	/**
	 * Calls <code>validateXXX</code> for the corresponding classifier of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map<Object, Object> context) {
		switch (classifierID) {
			case BpelPackage.DOCUMENT_ROOT:
				return validateDocumentRoot((DocumentRoot)value, diagnostics, context);
			case BpelPackage.PROCESS:
				return validateProcess((net.yienyien.process.bpel.Process)value, diagnostics, context);
			case BpelPackage.ACTIVITY:
				return validateActivity((Activity)value, diagnostics, context);
			case BpelPackage.ASSIGN:
				return validateAssign((Assign)value, diagnostics, context);
			case BpelPackage.EMPTY:
				return validateEmpty((Empty)value, diagnostics, context);
			case BpelPackage.FLOW:
				return validateFlow((Flow)value, diagnostics, context);
			case BpelPackage.FOR_EACH:
				return validateForEach((ForEach)value, diagnostics, context);
			case BpelPackage.INVOKE:
				return validateInvoke((Invoke)value, diagnostics, context);
			case BpelPackage.OPAQUE_ACTIVITY:
				return validateOpaqueActivity((OpaqueActivity)value, diagnostics, context);
			case BpelPackage.PICK:
				return validatePick((Pick)value, diagnostics, context);
			case BpelPackage.RECEIVE:
				return validateReceive((Receive)value, diagnostics, context);
			case BpelPackage.REPEAT_UNTIL:
				return validateRepeatUntil((RepeatUntil)value, diagnostics, context);
			case BpelPackage.REPLY:
				return validateReply((Reply)value, diagnostics, context);
			case BpelPackage.RETHROW:
				return validateRethrow((Rethrow)value, diagnostics, context);
			case BpelPackage.SCOPE:
				return validateScope((Scope)value, diagnostics, context);
			case BpelPackage.SEQUENCE:
				return validateSequence((Sequence)value, diagnostics, context);
			case BpelPackage.THROW:
				return validateThrow((Throw)value, diagnostics, context);
			case BpelPackage.VALIDATE:
				return validateValidate((Validate)value, diagnostics, context);
			case BpelPackage.WAIT:
				return validateWait((Wait)value, diagnostics, context);
			case BpelPackage.WHILE:
				return validateWhile((While)value, diagnostics, context);
			case BpelPackage.COMPENSATE:
				return validateCompensate((Compensate)value, diagnostics, context);
			case BpelPackage.COMPENSATE_SCOPE:
				return validateCompensateScope((CompensateScope)value, diagnostics, context);
			case BpelPackage.EXIT:
				return validateExit((Exit)value, diagnostics, context);
			case BpelPackage.IF:
				return validateIf((If)value, diagnostics, context);
			case BpelPackage.EXPRESSION:
				return validateExpression((Expression)value, diagnostics, context);
			case BpelPackage.BOOLEAN_EXPR:
				return validateBooleanExpr((BooleanExpr)value, diagnostics, context);
			case BpelPackage.BRANCHES:
				return validateBranches((Branches)value, diagnostics, context);
			case BpelPackage.CONDITION:
				return validateCondition((Condition)value, diagnostics, context);
			case BpelPackage.DEADLINE_EXPR:
				return validateDeadlineExpr((DeadlineExpr)value, diagnostics, context);
			case BpelPackage.DURATION_EXPR:
				return validateDurationExpr((DurationExpr)value, diagnostics, context);
			case BpelPackage.CATCH:
				return validateCatch((Catch)value, diagnostics, context);
			case BpelPackage.COMPLETION_CONDITION:
				return validateCompletionCondition((CompletionCondition)value, diagnostics, context);
			case BpelPackage.ACTIVITY_CONTAINER:
				return validateActivityContainer((ActivityContainer)value, diagnostics, context);
			case BpelPackage.COPY:
				return validateCopy((Copy)value, diagnostics, context);
			case BpelPackage.FROM:
				return validateFrom((From)value, diagnostics, context);
			case BpelPackage.TO:
				return validateTo((To)value, diagnostics, context);
			case BpelPackage.CORRELATION:
				return validateCorrelation((Correlation)value, diagnostics, context);
			case BpelPackage.CORRELATIONS:
				return validateCorrelations((Correlations)value, diagnostics, context);
			case BpelPackage.CORRELATION_SET:
				return validateCorrelationSet((CorrelationSet)value, diagnostics, context);
			case BpelPackage.CORRELATION_SETS:
				return validateCorrelationSets((CorrelationSets)value, diagnostics, context);
			case BpelPackage.CORRELATIONS_WITH_PATTERN:
				return validateCorrelationsWithPattern((CorrelationsWithPattern)value, diagnostics, context);
			case BpelPackage.CORRELATION_WITH_PATTERN:
				return validateCorrelationWithPattern((CorrelationWithPattern)value, diagnostics, context);
			case BpelPackage.DOCUMENTATION:
				return validateDocumentation((Documentation)value, diagnostics, context);
			case BpelPackage.ELSEIF:
				return validateElseif((Elseif)value, diagnostics, context);
			case BpelPackage.EVENT_HANDLERS:
				return validateEventHandlers((EventHandlers)value, diagnostics, context);
			case BpelPackage.EXTENSIBLE_ELEMENTS:
				return validateExtensibleElements((ExtensibleElements)value, diagnostics, context);
			case BpelPackage.EXTENSION:
				return validateExtension((Extension)value, diagnostics, context);
			case BpelPackage.EXTENSION_ACTIVITY:
				return validateExtensionActivity((ExtensionActivity)value, diagnostics, context);
			case BpelPackage.EXTENSION_ASSIGN_OPERATION:
				return validateExtensionAssignOperation((ExtensionAssignOperation)value, diagnostics, context);
			case BpelPackage.EXTENSIONS:
				return validateExtensions((Extensions)value, diagnostics, context);
			case BpelPackage.FAULT_HANDLERS:
				return validateFaultHandlers((FaultHandlers)value, diagnostics, context);
			case BpelPackage.FROM_PART:
				return validateFromPart((FromPart)value, diagnostics, context);
			case BpelPackage.FROM_PARTS:
				return validateFromParts((FromParts)value, diagnostics, context);
			case BpelPackage.IMPORT:
				return validateImport((Import)value, diagnostics, context);
			case BpelPackage.LINK:
				return validateLink((Link)value, diagnostics, context);
			case BpelPackage.LINKS:
				return validateLinks((Links)value, diagnostics, context);
			case BpelPackage.LITERAL:
				return validateLiteral((Literal)value, diagnostics, context);
			case BpelPackage.MESSAGE_EXCHANGE:
				return validateMessageExchange((MessageExchange)value, diagnostics, context);
			case BpelPackage.MESSAGE_EXCHANGES:
				return validateMessageExchanges((MessageExchanges)value, diagnostics, context);
			case BpelPackage.ON_ALARM_EVENT:
				return validateOnAlarmEvent((OnAlarmEvent)value, diagnostics, context);
			case BpelPackage.ON_ALARM_PICK:
				return validateOnAlarmPick((OnAlarmPick)value, diagnostics, context);
			case BpelPackage.ON_EVENT:
				return validateOnEvent((OnEvent)value, diagnostics, context);
			case BpelPackage.ON_MESSAGE:
				return validateOnMessage((OnMessage)value, diagnostics, context);
			case BpelPackage.ON_MSG_COMMON:
				return validateOnMsgCommon((OnMsgCommon)value, diagnostics, context);
			case BpelPackage.PARTNER_LINK:
				return validatePartnerLink((PartnerLink)value, diagnostics, context);
			case BpelPackage.PARTNER_LINKS:
				return validatePartnerLinks((PartnerLinks)value, diagnostics, context);
			case BpelPackage.QUERY:
				return validateQuery((Query)value, diagnostics, context);
			case BpelPackage.SOURCE:
				return validateSource((Source)value, diagnostics, context);
			case BpelPackage.SOURCES:
				return validateSources((Sources)value, diagnostics, context);
			case BpelPackage.TARGET:
				return validateTarget((Target)value, diagnostics, context);
			case BpelPackage.TARGETS:
				return validateTargets((Targets)value, diagnostics, context);
			case BpelPackage.TO_PART:
				return validateToPart((ToPart)value, diagnostics, context);
			case BpelPackage.TO_PARTS:
				return validateToParts((ToParts)value, diagnostics, context);
			case BpelPackage.VARIABLE:
				return validateVariable((Variable)value, diagnostics, context);
			case BpelPackage.VARIABLES:
				return validateVariables((Variables)value, diagnostics, context);
			case BpelPackage.BPEL_VARIABLE_NAME_MEMBER1:
				return validateBPELVariableNameMember1((BPELVariableNameMember1)value, diagnostics, context);
			case BpelPackage.TPATTERN:
				return validateTPattern((TPattern)value, diagnostics, context);
			case BpelPackage.OPAQUE_BOOLEAN:
				return validateOpaqueBoolean((OpaqueBoolean)value, diagnostics, context);
			case BpelPackage.YES_NO_BOOLEAN:
				return validateYesNoBoolean((YesNoBoolean)value, diagnostics, context);
			case BpelPackage.TINITIATE:
				return validateTInitiate((TInitiate)value, diagnostics, context);
			case BpelPackage.OPAQUE_STR:
				return validateOpaqueStr((OpaqueStr)value, diagnostics, context);
			case BpelPackage.ROLES:
				return validateRoles((Roles)value, diagnostics, context);
			case BpelPackage.ANY_URI:
				return validateAnyURI(value, diagnostics, context);
			case BpelPackage.BPEL_VARIABLE_NAME:
				return validateBPELVariableName(value, diagnostics, context);
			case BpelPackage.BPEL_VARIABLE_NAME_MEMBER0:
				return validateBPELVariableNameMember0((String)value, diagnostics, context);
			case BpelPackage.BPEL_VARIABLE_NAME_MEMBER1_OBJECT:
				return validateBPELVariableNameMember1Object((BPELVariableNameMember1)value, diagnostics, context);
			case BpelPackage.BPEL_VARIABLE_NAMES:
				return validateBPELVariableNames((List<?>)value, diagnostics, context);
			case BpelPackage.BPEL_VARIABLE_NAMES_BASE:
				return validateBPELVariableNamesBase((List<?>)value, diagnostics, context);
			case BpelPackage.NC_NAME:
				return validateNCName(value, diagnostics, context);
			case BpelPackage.QNAME:
				return validateQName(value, diagnostics, context);
			case BpelPackage.QNAMES:
				return validateQNames((List<?>)value, diagnostics, context);
			case BpelPackage.QNAMES_BASE:
				return validateQNamesBase((List<?>)value, diagnostics, context);
			case BpelPackage.ROLES_OBJECT:
				return validateRolesObject((Roles)value, diagnostics, context);
			case BpelPackage.BOOLEAN_OBJECT:
				return validateBooleanObject((YesNoBoolean)value, diagnostics, context);
			case BpelPackage.TINITIATE_OBJECT:
				return validateTInitiateObject((TInitiate)value, diagnostics, context);
			case BpelPackage.OPAQUE_BOOLEAN_OBJECT:
				return validateOpaqueBooleanObject((OpaqueBoolean)value, diagnostics, context);
			case BpelPackage.OPAQUE_STR_OBJECT:
				return validateOpaqueStrObject((OpaqueStr)value, diagnostics, context);
			case BpelPackage.TPATTERN_OBJECT:
				return validateTPatternObject((TPattern)value, diagnostics, context);
			default: 
				return true;
		}
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateDocumentRoot(DocumentRoot documentRoot, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(documentRoot, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateProcess(net.yienyien.process.bpel.Process process, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(process, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateActivity(Activity activity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(activity, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAssign(Assign assign, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(assign, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateEmpty(Empty empty, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(empty, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateFlow(Flow flow, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(flow, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateForEach(ForEach forEach, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(forEach, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateInvoke(Invoke invoke, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(invoke, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOpaqueActivity(OpaqueActivity opaqueActivity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(opaqueActivity, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validatePick(Pick pick, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(pick, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateReceive(Receive receive, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(receive, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateRepeatUntil(RepeatUntil repeatUntil, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(repeatUntil, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateReply(Reply reply, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(reply, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateRethrow(Rethrow rethrow, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(rethrow, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateScope(Scope scope, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(scope, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateSequence(Sequence sequence, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(sequence, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateThrow(Throw throw_, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(throw_, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateValidate(Validate validate, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(validate, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateWait(Wait wait, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(wait, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateWhile(While while_, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(while_, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateCompensate(Compensate compensate, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(compensate, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateCompensateScope(CompensateScope compensateScope, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(compensateScope, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateExit(Exit exit, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(exit, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateIf(If if_, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(if_, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateExpression(Expression expression, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(expression, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBooleanExpr(BooleanExpr booleanExpr, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(booleanExpr, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBranches(Branches branches, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(branches, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateCondition(Condition condition, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(condition, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateDeadlineExpr(DeadlineExpr deadlineExpr, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(deadlineExpr, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateDurationExpr(DurationExpr durationExpr, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(durationExpr, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateCatch(Catch catch_, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(catch_, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateCompletionCondition(CompletionCondition completionCondition, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(completionCondition, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateActivityContainer(ActivityContainer activityContainer, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(activityContainer, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateCopy(Copy copy, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(copy, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateFrom(From from, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(from, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTo(To to, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(to, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateCorrelation(Correlation correlation, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(correlation, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateCorrelations(Correlations correlations, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(correlations, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateCorrelationSet(CorrelationSet correlationSet, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(correlationSet, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateCorrelationSets(CorrelationSets correlationSets, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(correlationSets, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateCorrelationsWithPattern(CorrelationsWithPattern correlationsWithPattern, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(correlationsWithPattern, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateCorrelationWithPattern(CorrelationWithPattern correlationWithPattern, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(correlationWithPattern, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateDocumentation(Documentation documentation, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(documentation, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateElseif(Elseif elseif, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(elseif, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateEventHandlers(EventHandlers eventHandlers, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(eventHandlers, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateExtensibleElements(ExtensibleElements extensibleElements, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(extensibleElements, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateExtension(Extension extension, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(extension, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateExtensionActivity(ExtensionActivity extensionActivity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(extensionActivity, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateExtensionAssignOperation(ExtensionAssignOperation extensionAssignOperation, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(extensionAssignOperation, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateExtensions(Extensions extensions, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(extensions, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateFaultHandlers(FaultHandlers faultHandlers, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(faultHandlers, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateFromPart(FromPart fromPart, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(fromPart, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateFromParts(FromParts fromParts, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(fromParts, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateImport(Import import_, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(import_, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateLink(Link link, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(link, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateLinks(Links links, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(links, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateLiteral(Literal literal, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(literal, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateMessageExchange(MessageExchange messageExchange, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(messageExchange, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateMessageExchanges(MessageExchanges messageExchanges, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(messageExchanges, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOnAlarmEvent(OnAlarmEvent onAlarmEvent, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(onAlarmEvent, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOnAlarmPick(OnAlarmPick onAlarmPick, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(onAlarmPick, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOnEvent(OnEvent onEvent, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(onEvent, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOnMessage(OnMessage onMessage, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(onMessage, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOnMsgCommon(OnMsgCommon onMsgCommon, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(onMsgCommon, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validatePartnerLink(PartnerLink partnerLink, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(partnerLink, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validatePartnerLinks(PartnerLinks partnerLinks, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(partnerLinks, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateQuery(Query query, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(query, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateSource(Source source, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(source, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateSources(Sources sources, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(sources, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTarget(Target target, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(target, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTargets(Targets targets, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(targets, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateToPart(ToPart toPart, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(toPart, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateToParts(ToParts toParts, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(toParts, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateVariable(Variable variable, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(variable, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateVariables(Variables variables, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(variables, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBPELVariableNameMember1(BPELVariableNameMember1 bpelVariableNameMember1, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTPattern(TPattern tPattern, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOpaqueBoolean(OpaqueBoolean opaqueBoolean, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateYesNoBoolean(YesNoBoolean yesNoBoolean, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTInitiate(TInitiate tInitiate, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOpaqueStr(OpaqueStr opaqueStr, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateRoles(Roles roles, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAnyURI(Object anyURI, DiagnosticChain diagnostics, Map<Object, Object> context) {
		boolean result = validateAnyURI_MemberTypes(anyURI, diagnostics, context);
		return result;
	}

	/**
	 * Validates the MemberTypes constraint of '<em>Any URI</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAnyURI_MemberTypes(Object anyURI, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (diagnostics != null) {
			BasicDiagnostic tempDiagnostics = new BasicDiagnostic();
			if (XMLTypePackage.Literals.ANY_URI.isInstance(anyURI)) {
				if (xmlTypeValidator.validateAnyURI((String)anyURI, tempDiagnostics, context)) return true;
			}
			if (BpelPackage.eINSTANCE.getOpaqueStr().isInstance(anyURI)) {
				if (validateOpaqueStr((OpaqueStr)anyURI, tempDiagnostics, context)) return true;
			}
			for (Diagnostic diagnostic : tempDiagnostics.getChildren()) {
				diagnostics.add(diagnostic);
			}
		}
		else {
			if (XMLTypePackage.Literals.ANY_URI.isInstance(anyURI)) {
				if (xmlTypeValidator.validateAnyURI((String)anyURI, null, context)) return true;
			}
			if (BpelPackage.eINSTANCE.getOpaqueStr().isInstance(anyURI)) {
				if (validateOpaqueStr((OpaqueStr)anyURI, null, context)) return true;
			}
		}
		return false;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBPELVariableName(Object bpelVariableName, DiagnosticChain diagnostics, Map<Object, Object> context) {
		boolean result = validateBPELVariableName_MemberTypes(bpelVariableName, diagnostics, context);
		return result;
	}

	/**
	 * Validates the MemberTypes constraint of '<em>BPEL Variable Name</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBPELVariableName_MemberTypes(Object bpelVariableName, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (diagnostics != null) {
			BasicDiagnostic tempDiagnostics = new BasicDiagnostic();
			if (BpelPackage.eINSTANCE.getBPELVariableNameMember0().isInstance(bpelVariableName)) {
				if (validateBPELVariableNameMember0((String)bpelVariableName, tempDiagnostics, context)) return true;
			}
			if (BpelPackage.eINSTANCE.getBPELVariableNameMember1().isInstance(bpelVariableName)) {
				if (validateBPELVariableNameMember1((BPELVariableNameMember1)bpelVariableName, tempDiagnostics, context)) return true;
			}
			for (Diagnostic diagnostic : tempDiagnostics.getChildren()) {
				diagnostics.add(diagnostic);
			}
		}
		else {
			if (BpelPackage.eINSTANCE.getBPELVariableNameMember0().isInstance(bpelVariableName)) {
				if (validateBPELVariableNameMember0((String)bpelVariableName, null, context)) return true;
			}
			if (BpelPackage.eINSTANCE.getBPELVariableNameMember1().isInstance(bpelVariableName)) {
				if (validateBPELVariableNameMember1((BPELVariableNameMember1)bpelVariableName, null, context)) return true;
			}
		}
		return false;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBPELVariableNameMember0(String bpelVariableNameMember0, DiagnosticChain diagnostics, Map<Object, Object> context) {
		boolean result = validateBPELVariableNameMember0_Pattern(bpelVariableNameMember0, diagnostics, context);
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @see #validateBPELVariableNameMember0_Pattern
	 */
	public static final  PatternMatcher [][] BPEL_VARIABLE_NAME_MEMBER0__PATTERN__VALUES =
		new PatternMatcher [][] {
			new PatternMatcher [] {
				XMLTypeUtil.createPatternMatcher("[^\\.]+")
			},
			new PatternMatcher [] {
				XMLTypeUtil.createPatternMatcher("[\\i-[:]][\\c-[:]]*")
			},
			new PatternMatcher [] {
				XMLTypeUtil.createPatternMatcher("\\i\\c*")
			}
		};

	/**
	 * Validates the Pattern constraint of '<em>BPEL Variable Name Member0</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBPELVariableNameMember0_Pattern(String bpelVariableNameMember0, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validatePattern(BpelPackage.eINSTANCE.getBPELVariableNameMember0(), bpelVariableNameMember0, BPEL_VARIABLE_NAME_MEMBER0__PATTERN__VALUES, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBPELVariableNameMember1Object(BPELVariableNameMember1 bpelVariableNameMember1Object, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBPELVariableNames(List<?> bpelVariableNames, DiagnosticChain diagnostics, Map<Object, Object> context) {
		boolean result = validateBPELVariableNamesBase_ItemType(bpelVariableNames, diagnostics, context);
		if (result || diagnostics != null) result &= validateBPELVariableNames_MinLength(bpelVariableNames, diagnostics, context);
		return result;
	}

	/**
	 * Validates the MinLength constraint of '<em>BPEL Variable Names</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBPELVariableNames_MinLength(List<?> bpelVariableNames, DiagnosticChain diagnostics, Map<Object, Object> context) {
		int length = bpelVariableNames.size();  
		boolean result = length >= 1;
		if (!result && diagnostics != null) 
			reportMinLengthViolation(BpelPackage.eINSTANCE.getBPELVariableNames(), bpelVariableNames, length, 1, diagnostics, context);
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBPELVariableNamesBase(List<?> bpelVariableNamesBase, DiagnosticChain diagnostics, Map<Object, Object> context) {
		boolean result = validateBPELVariableNamesBase_ItemType(bpelVariableNamesBase, diagnostics, context);
		return result;
	}

	/**
	 * Validates the ItemType constraint of '<em>BPEL Variable Names Base</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBPELVariableNamesBase_ItemType(List<?> bpelVariableNamesBase, DiagnosticChain diagnostics, Map<Object, Object> context) {
		boolean result = true;
		for (Iterator<?> i = bpelVariableNamesBase.iterator(); i.hasNext() && (result || diagnostics != null); ) {
			Object item = i.next();
			if (BpelPackage.eINSTANCE.getBPELVariableName().isInstance(item)) {
				result &= validateBPELVariableName(item, diagnostics, context);
			}
			else {
				result = false;
				reportDataValueTypeViolation(BpelPackage.eINSTANCE.getBPELVariableName(), item, diagnostics, context);
			}
		}
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateNCName(Object ncName, DiagnosticChain diagnostics, Map<Object, Object> context) {
		boolean result = validateNCName_MemberTypes(ncName, diagnostics, context);
		return result;
	}

	/**
	 * Validates the MemberTypes constraint of '<em>NC Name</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateNCName_MemberTypes(Object ncName, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (diagnostics != null) {
			BasicDiagnostic tempDiagnostics = new BasicDiagnostic();
			if (XMLTypePackage.Literals.NC_NAME.isInstance(ncName)) {
				if (xmlTypeValidator.validateNCName((String)ncName, tempDiagnostics, context)) return true;
			}
			if (BpelPackage.eINSTANCE.getOpaqueStr().isInstance(ncName)) {
				if (validateOpaqueStr((OpaqueStr)ncName, tempDiagnostics, context)) return true;
			}
			for (Diagnostic diagnostic : tempDiagnostics.getChildren()) {
				diagnostics.add(diagnostic);
			}
		}
		else {
			if (XMLTypePackage.Literals.NC_NAME.isInstance(ncName)) {
				if (xmlTypeValidator.validateNCName((String)ncName, null, context)) return true;
			}
			if (BpelPackage.eINSTANCE.getOpaqueStr().isInstance(ncName)) {
				if (validateOpaqueStr((OpaqueStr)ncName, null, context)) return true;
			}
		}
		return false;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateQName(Object qName, DiagnosticChain diagnostics, Map<Object, Object> context) {
		boolean result = validateQName_MemberTypes(qName, diagnostics, context);
		return result;
	}

	/**
	 * Validates the MemberTypes constraint of '<em>QName</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateQName_MemberTypes(Object qName, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (diagnostics != null) {
			BasicDiagnostic tempDiagnostics = new BasicDiagnostic();
			if (XMLTypePackage.Literals.QNAME.isInstance(qName)) {
				if (xmlTypeValidator.validateQName((QName)qName, tempDiagnostics, context)) return true;
			}
			if (BpelPackage.eINSTANCE.getOpaqueStr().isInstance(qName)) {
				if (validateOpaqueStr((OpaqueStr)qName, tempDiagnostics, context)) return true;
			}
			for (Diagnostic diagnostic : tempDiagnostics.getChildren()) {
				diagnostics.add(diagnostic);
			}
		}
		else {
			if (XMLTypePackage.Literals.QNAME.isInstance(qName)) {
				if (xmlTypeValidator.validateQName((QName)qName, null, context)) return true;
			}
			if (BpelPackage.eINSTANCE.getOpaqueStr().isInstance(qName)) {
				if (validateOpaqueStr((OpaqueStr)qName, null, context)) return true;
			}
		}
		return false;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateQNames(List<?> qNames, DiagnosticChain diagnostics, Map<Object, Object> context) {
		boolean result = validateQNamesBase_ItemType(qNames, diagnostics, context);
		if (result || diagnostics != null) result &= validateQNames_MinLength(qNames, diagnostics, context);
		return result;
	}

	/**
	 * Validates the MinLength constraint of '<em>QNames</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateQNames_MinLength(List<?> qNames, DiagnosticChain diagnostics, Map<Object, Object> context) {
		int length = qNames.size();  
		boolean result = length >= 1;
		if (!result && diagnostics != null) 
			reportMinLengthViolation(BpelPackage.eINSTANCE.getQNames(), qNames, length, 1, diagnostics, context);
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateQNamesBase(List<?> qNamesBase, DiagnosticChain diagnostics, Map<Object, Object> context) {
		boolean result = validateQNamesBase_ItemType(qNamesBase, diagnostics, context);
		return result;
	}

	/**
	 * Validates the ItemType constraint of '<em>QNames Base</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateQNamesBase_ItemType(List<?> qNamesBase, DiagnosticChain diagnostics, Map<Object, Object> context) {
		boolean result = true;
		for (Iterator<?> i = qNamesBase.iterator(); i.hasNext() && (result || diagnostics != null); ) {
			Object item = i.next();
			if (BpelPackage.eINSTANCE.getQName().isInstance(item)) {
				result &= validateQName(item, diagnostics, context);
			}
			else {
				result = false;
				reportDataValueTypeViolation(BpelPackage.eINSTANCE.getQName(), item, diagnostics, context);
			}
		}
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateRolesObject(Roles rolesObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateBooleanObject(YesNoBoolean booleanObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTInitiateObject(TInitiate tInitiateObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOpaqueBooleanObject(OpaqueBoolean opaqueBooleanObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOpaqueStrObject(OpaqueStr opaqueStrObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTPatternObject(TPattern tPatternObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

} //BpelValidator
